package controlador;

import java.util.ArrayList;

import modelo.transfer.Plato;
import modelo.transfer.TipoDePlato;

public interface ControladorPlatos {
	
	/**
	 * Añade un plato pedido por un cliente a la mesa seleccionada.
	 * <br>
	 * SRS_ID: Pla01
	 * @param idMesa
	 * @param tipo
	 * @param precio
	 * @param nombre
	 */
	void agregarPlato(int idMesa, int idPlato);
	
	/**
	 * Ver el listado de platos pedidos por una mesa.
	 * <br>
	 * SRS_ID: Pla02
	 * @param idMesa
	 * @return Listado de platos pedidos.
	 * @deprecated
	 */
	public void verPlatos(int idMesa);	
	
	/**
	 * Ver el listado de platos pedidos por una mesa.
	 * <br>
	 * @param idMesa
	 * @return Listado de platos pedidos.
	 */
	ArrayList<Plato> verPlatosMesa(int idMesa);	
	
	/**
	 * Cambiar un plato en una mesa.
	 * <br>
	 * SRS_ID: Pla03
	 * @param idMesa
	 * @param idPlato
	 * @param idNuevoPlato
	 * @return Lista de platos con las modificaciones realizadas.
	 */
	ArrayList<Plato> modificarPlato(int idMesa, int idPlato, int idNuevoPlato);
	
	/**
	 * Elimina un plato pedido de la mesa.
	 * @param idMesa
	 * @param idPlato
	 * @return Nueva lista de platos.
	 */
	ArrayList<Plato> eliminarPlato(int idMesa, int idPlato);
	
	/**
	 * Escribir un comentario de texto referente a un plato pedido.
	 * <br>
	 * SRS_ID: Pla05
	 * @param idMesa
	 * @param idPlato
	 * @param comentario
	 * @return Plato con comentario de texto.
	 */
	Plato agregarComentarioPlato(int idMesa, int idPlato, String comentario);
		
	/**
	 * Eliminar comentario de plato.
	 * <br>
	 * SRS_ID: Pla06
	 * @param idMesa
	 * @param idPlato
	 * @return
	 */
	Plato eliminarComentarioPlato(int idMesa, int idPlato);
	
	
	
}
